package web;

import cn.demoncat.util.lang.JsonUtil;
import cn.demoncat.util.pay.yeepay.YeepayUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * 易宝支付通知
 * 
 * @author 延晓磊
 * @since 2020年10月20日
 */
public class PayNotifyController {
    
    @Resource
    private YeepayUtil yeepayUtil;
    
    private static final Logger LOG = LoggerFactory.getLogger(PayNotifyController.class);

    /**
     * 商户入网
     *
     * @param request
     * @return
     *
     * @author 延晓磊
     * @since 2020年10月20日
     */
    @PostMapping("/merchant-register")
    public String merchantRegister(HttpServletRequest request){
        return yeepayUtil.notifyMerchantRegister(request, data ->{
            LOG.info("回调参数 merchant-register：" + JsonUtil.toStr(data));
            return true;
        });
    }

    /**
     * 支付成功
     * 
     * @return
     * 
     * @author 延晓磊
     * @since 2020年10月20日
     */
    @PostMapping("/pay")
    public String pay(HttpServletRequest request){
        return yeepayUtil.notifyTradeOrder(request, data ->{
            LOG.info("回调参数 pay2：" + JsonUtil.toStr(data));
            return true;
        });
    }

    /**
     * 退款
     *
     * @param request
     * @return
     *
     * @author 延晓磊
     * @since 2020年10月20日
     */
    @PostMapping("/refund")
    public String refund(HttpServletRequest request){
        return yeepayUtil.notifyTradeRefund(request, data ->{
            LOG.info("回调参数 refund2：" + JsonUtil.toStr(data));
            return true;
        });
    }
}
